package com.carleasoft.mps.cms.business.leave.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carleasoft.mps.cms.business.leave.bean.entity.LeaveEntity;
import com.carleasoft.mps.cms.business.leave.bean.po.LeavePo;
import com.carleasoft.mps.cms.business.leave.bean.po.LeaveUserPo;
import com.carleasoft.mps.cms.business.leave.bean.po.YearCountPo;
import com.carleasoft.mps.cms.business.leave.bean.vo.LeaveTypeCountVo;
import com.carleasoft.mps.cms.business.leave.bean.vo.UserListVo;
import com.carleasoft.mps.cms.business.leave.bean.vo.YearCountVo;

import java.util.List;

/**
 * @author: yangHao
 * @createDate:2023/6/3
 * @description:
 */
public interface LeaveService extends IService<LeaveEntity> {
    String saveLeave(LeaveUserPo leaveUserPo);

    Page<LeaveUserPo> pageQuery(Page page, LeavePo leavePo);

    boolean delete(String leaveCode);

    List<LeaveEntity> listLeave();

    boolean updateState(LeaveEntity leaveEntity);

    List<UserListVo> userList(String leaveCode);

    YearCountVo yearCount(YearCountPo yearCountPo);

    LeaveTypeCountVo leaveTypeCount();
}
